﻿/****************************************************************************** 
 * 文件名称: UIMenuStyle.cs
 * 文件说明: 控件样式定义类
 * 当前版本: V3.0
 * 创建日期: 2020-01-01
 *
 * 2020-01-01: V2.2.0 增加文件说明
******************************************************************************/

using System.Drawing;

namespace Bojay.UI
{
    /// <summary>
    /// 菜单主题样色
    /// </summary>
    public enum UIMenuStyle
    {
        /// <summary>
        /// 自定义
        /// </summary>
        [DisplayText("Custom")]
        Custom,

        /// <summary>
        /// 黑
        /// </summary>
        [DisplayText("Black")]
        Black,

        /// <summary>
        /// 白
        /// </summary>
        [DisplayText("White")]
        White,

        /// <summary>
        /// Blue
        /// </summary>
        [DisplayText("DarkBlue")]
        DarkBlue
    }

    public abstract class UIMenuColor
    {
        public abstract UIMenuStyle Style { get; }
        public virtual Color MenuBackColor => Color.FromArgb(41, 60, 85);
        public virtual Color BackColor => Color.FromArgb(56, 56, 56);
        public virtual Color SelectedColor => Color.FromArgb(36, 36, 36);
        public virtual Color SelectedForeColor => Color.FromArgb(16, 35, 68);
        public virtual Color UnSelectedForeColor => Color.FromArgb(240, 240, 240);
        public virtual Color HoverColor => Color.FromArgb(76, 76, 76);
        public virtual Color SecondBackColor => Color.FromArgb(66, 66, 66);
        public override string ToString()
        {
            return Style.DisplayText();
        }
    }

    public class UIMenuCustomColor : UIMenuColor
    {
        public override UIMenuStyle Style => UIMenuStyle.Custom;
    }

    public class UIMenuBlackColor : UIMenuColor
    {
        public override UIMenuStyle Style => UIMenuStyle.Black;
    }

    public class UIMenuDarkBlueColor : UIMenuColor
    {
        public override UIMenuStyle Style => UIMenuStyle.DarkBlue;
        public override Color BackColor => UIColor.Office2019Blue;
        public override Color SelectedColor => UIColor.LightBlue;
        public override Color SelectedForeColor => Color.FromArgb(16, 35, 68);
        public override Color UnSelectedForeColor => UIColor.LightBlue;
        public override Color HoverColor => Color.FromArgb(97, 155, 210);
        public override Color SecondBackColor => Color.FromArgb(60, 100, 160);// Color.FromArgb(25, 90, 190);
    }
    public class UIMenuWhiteColor : UIMenuColor
    {
        public override UIMenuStyle Style => UIMenuStyle.White;
        public override Color BackColor => Color.FromArgb(240, 240, 240);
        public override Color SelectedColor => Color.FromArgb(250, 250, 250);
        public override Color UnSelectedForeColor => UIFontColor.Primary;
        public override Color HoverColor => Color.FromArgb(230, 230, 230);
        public override Color SecondBackColor => Color.FromArgb(235, 235, 235);
    }
}